Lost Update
#Isolation
#トランザクション分離レベル
#トランザクション
書き込んだ値が、他のトランザクションによってなかったことにされる
Anomaly
。(
Dead step
)
https://scrapbox.io/files/671c7c61b0332e7f6de91072.png
この図の例では、T1の書き込みはT2によってなかったことにされる。
Serializable
だったら、T1のあとにT2(またはその逆)で、なかったことにはされないのに…
画像は
いろんなAnomaly #ポエム - Qiita
より
Read committed
で起こり得る。
Snapshot Isolation
でも起きる。
Repeatable Read
では起きない。
アトミック操作のクエリなどで対処するのが一般的
明示的にロックを取る、トランザクションマネージャーがlost updateを検出するなどもある
CRDT
であればこれは起きない。
LWW
的な操作で起きてしまう問題。